// =====================================================================================
// 
//       Filename:  auto_ptr.h
// 
//    Description:  
// 
//        Version:  1.0
//        Created:  25.11.2011 14:39:27
//       Revision:  none
//       Compiler:  g++
// 
//         Author:  Dmitriy Serdyuk (), serdyuk.dmitriy@gmail.com
//        Company:  
// 
// =====================================================================================

#ifndef AUTO_PTR_H
#define AUTO_PTR_H

class Object {
public:
    Object();
    ~Object();
    void foo();
};

class auto_ptr {
public:
    auto_ptr(Object *p = 0);
    ~auto_ptr();

    bool is_null();

    auto_ptr(auto_ptr &a);
    auto_ptr & operator = (auto_ptr & a);
    Object * operator -> () const;
    Object & operator * () const;

private:
    Object * myPointer;
};

#endif   // ----- #ifndef AUTO_PTR_H -----

